// 可以针对h5、微信、app等平台采用不同的请求公共路径
// #ifdef APP-PLUS || H5
import { getAppConfig } from '@/common/config/config.js'
const { BASE_URL  } = getAppConfig();
// #endif

// #ifdef MP-WEIXIN
const  BASE_URL='http://123.60.33.164:9898';
// #endif

/**
 * 上传单个文件
 * @param {any} filePath 
 * @param {any} url 
 * @param {any} formData 
 * @param {any} successCallback 
 * @param {any} failCallback 
 * @return 
 */ 
export function uploadSingleFile(filePath, url, formData = {}, successCallback, failCallback) {  
  uni.uploadFile({  
    url: BASE_URL+url, // 开发者服务器 url  
    filePath: filePath, // 要上传文件资源的路径 (本地文件的完整路径)  
    name: 'file', // 发送到服务器的文件参数名  
    formData: formData, // HTTP 请求中其他额外的 form 数据  
    success: (uploadRes) => {  
      if (uploadRes.statusCode === 200) {  
        // 根据你的接口返回的数据格式解析res.data  
        const data = JSON.parse(uploadRes.data);  
        if (data.success) {  
          successCallback(data);  
        } else {  
          failCallback(data.message || '上传失败');  
        }  
      } else {  
        failCallback('上传失败，状态码：' + uploadRes.statusCode);  
      }  
    },  
    fail: (err) => {  
      failCallback(err.errMsg || '上传失败');  
    }  
  });  
}

/**
 * 上传多个文件
 * @param {any} filePaths 
 * @param {any} url 
 * @param {any} formData 
 * @param {any} successCallback 
 * @param {any} failCallback 
 * @return 
 */ 
export function uploadMultipleFiles(filePaths, url, formData = {}, successCallback, failCallback) {  
  let index = 0;  
  const total = filePaths.length;  
  
  const uploadNext = () => {  
    if (index >= total) {  
      // 所有文件上传完成  
      successCallback('所有文件上传成功');  
      return;  
    }  
  
    const filePath = filePaths[index++];  
  
    uni.uploadFile({  
      url: BASE_URL+url,  
      filePath: filePath,  
      name: 'file',  
      formData: formData,  
      success: (uploadRes) => {  
        if (uploadRes.statusCode === 200) {  
          // 解析上传结果  
          const data = JSON.parse(uploadRes.data);  
          if (data.success) {  
            uploadNext(); // 继续上传下一个文件  
          } else {  
            failCallback(`文件 ${filePath} 上传失败: ${data.message || '未知错误'}`);  
          }  
        } else {  
          failCallback(`文件 ${filePath} 上传失败，状态码：${uploadRes.statusCode}`);  
        }  
      },  
      fail: (err) => {  
        failCallback(`文件 ${filePath} 上传失败: ${err.errMsg || '未知错误'}`);  
      }  
    });  
  };  
  
  uploadNext(); // 开始上传  
}


export default{
	uploadSingleFile, 
	uploadMultipleFiles
}